在掌握了怎么用Python定义变量和Python常用的数据类型后, 我们就可以继续探索Python世界了.
运算符
算术运算符
运算符 |
描述 |
实例 |
+ |
加 |
1 + 2 => 3 |
- |
减 |
3 - 2 => 1 |
* |
乘 |
2 * 3 => 6 |
/ |
除 |
6 / 2 => 3 |
// |
整除 |
7 // 2 => 3 |
% |
模除 |
7 % 2 = 1 |
** |
幂 |
2 ** 3 = 8 |
关系运算符
运算符 |
描述 |
实例 |
== |
等于 |
1 == 2 => False |
!= |
不等 |
3 != 2 => True |
<> |
不等 |
2 <> 3 => True |
> |
大于 |
6 > 2 => True |
< |
小于 |
7 < 2 => False |
>= |
大于等于 |
7 >= 2 = True |
<= |
小于等于 |
2 <= 3 = True |
赋值运算符
运算符 |
描述 |
实例 |
= |
赋值 |
x = 1 |
+= |
加赋值 |
x += 1 |
-= |
减赋值 |
x -= 1 |
*= |
乘赋值 |
x *= 2 |
/= |
除赋值 |
x /= 2 |
//= |
整除赋值 |
x //= 2 |
%= |
模除赋值 |
x %= 2 |
**= |
幂赋值 |
x **= 3 |
位运算符
运算符 |
描述 |
实例 |
& |
与运算 |
5 & 2 |
| |
或运算 |
5 | 2 |
~ |
取反运算 |
~7 |
^ |
异或运算 |
7 ^ 3 |
<< |
左移运算 |
1 << 2 |
>> |
右移运算 |
7 >> 1 |
print( 5 & 2 ) # 00000101 and 00000010 => 00000000 => 0
print( 5 | 2 ) # 00000101 or 00000010 => 00000111 => 7
print( 7 ^ 3) # 00000111 xor 00000011 => 00000100 => 4
print(1 << 2) # 00000001 << 2 => 00000100 => 4
print(7 >> 1) # 00000111 >> 1 => 00000011 => 3
print(~7) # -x - 1 => -8
涉及到的一些概念
1. 源码: 是指由 0 和 1 组成的二进制数.(先低后高存储)
2. 无符号位数: 是指将源码的所有有效位数, 都用来表示数值(比如 "0000 0001" 这是一个8位的二进制数, 可以表示数的范围就是[0, 255])
3. 有符号位数: 是指用源码的第一位表示符号位(1 表示负数, 0 表示正数), 其余的位数来表示数值(比如"0000 0001" 这是一个8位的二进制数, 可以表示数的范围就是[-128, 127])
4. 原码: 是指用有符号位数表示的二进制数
5. 反码: 正数的反码是它本身, 负数的反码是除符号位外的其他位取反得到的(比如 -7的原码是 10000111, 反码就是 11111000)
6. 补码: 正数的补码是它本身, 负数的补码是在反码的基础上加 1(比如 -7 的反码是 11111000, 那补码就是 11111001)
~取反运算符, 是将数值的补码进行取反
~7 => ~(0000 0111) => 1111 1000 => 1000 0111(反码) => 1000 1000(补码) => -8
同理 ~(-8)
∵ -8 => 1000 1000(原码) => 1111 0111(反码) ==> 1111 1000(补码)
∴ ~(-8) => ~(1111 1000) => 0000 0111 => 7
逻辑运算符
运算符 |
描述 |
实例 |
not |
非 |
not True |
and |
与 |
True and False |
or |
或 |
True or False |
成员运算符
运算符 |
描述 |
实例 |
in |
存在 |
1 in range(10) |
not in |
不存在 |
1 not in range(2, 10) |
身份运算符
运算符 |
描述 |
实例 |
is |
是否相同引用 |
x is y |
is not |
是否不同引用 |
x is not y |
运算符的优先级
运算符 |
描述 |
** |
指数 (最高优先级) |
~ |
按位翻转 |
* / % // |
乘, 除, 模除和整除 |
+ - |
加法, 减法 |
>> << |
右移,左移运算符 |
& |
与运算 |
^ | |
或运算符和异或运算符 |
<= < > >= |
比较运算符 |
<> == != |
关系运算符 |
= %= /= //= -= += = *= |
赋值运算符 |
is is not |
身份运算符 |
in not in |
成员运算符 |
not or and |
逻辑运算符 |
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。